3 DEF FNR=INT(RND*8+1):FOR I=1 TO 8:FOR J=1 TO 8:F=RND:M=-(F>0.98)-(F>0.95)-(F>0.8):K9=K9+M:B3=-(RND>0.96):B9=B9+B3:G(I,J)=M*100+B3*10+FNR:NEXT J,I:E=3000:B$=STRING$(32,"-"):DEF FNX(X)=-X*(X<=8)-8*(X>8):DEF FNY(X)=-X*(X>=1)-(X<1):T4=10:U=FNR
4 T=INT(RND*20+20)*100:T0=T:T9=25+INT(RND*10):V=FNR:O=FNR:P=FNR:FOR I=1 TO 2:FOR J=1 TO 9:READ C(J,I):NEXT J,I:T9=-T9*(K9<=T9)-(K9+1)*(K9>T9):F=-(B9=0 AND G(U,V)<200):G(U,V)=G(U,V)+F*100:K9=K9+F:B9=B9+F:G(U,V)=G(U,V)+F*10:U=FNR:V=FNR
8 IF S+E<10 OR(E<10 AND D(7)<0)THEN PRINT"SHIP STRANDED IN SPACE. YOU HAVE INSUFFICIENT ENERGY TO":PRINT"MANEUVER. SHIELDS CANNOT BE CROSS-CIRCUITED":GOTO 38
9 INPUT"COMMAND",A$:I=INSTR(D$,A$):I=(I+2)/3:IF I=2 THEN GOSUB 40:GOTO 9 ELSE IF INT(I)=I AND I THEN ON I GOTO 11,9,21,22,26,31,32,44
10 FOR I=1 TO 8:PRINT MID$(D$,I*3-2,3)" - "H$(I):NEXT:GOTO 8
14 D(I)=-D(I)*(D(I)>=0ORD(I)<=0)+0.1*(D(I)>-0.1ANDD(I)<0):NEXT:IFRND>0.2THEN15 ELSEG=FNR:IFRND<0.6THEND(G)=D(G)-(RND*5+1):PRINTH$(G)" DAMAGED":GOTO15 ELSED(G)=D(G)+RND*3+1:PRINTH$(G)" STATE OF REPAIR IMPROVED
16 Y=8*V+Y+N*X2:U=INT(X/8):V=INT(Y/8):O=INT(X-U*8):P=INT(Y-V*8):U=U+(O=0):O=-O*(O>0 AND O<9)-8*(O<1)-1*(O>8):V=V+(P=0):P=-P*(P>0 AND P<9)-8*(P<1)-1*(P>8):U=-U*(U>0 AND U<9)-8*(U<1)-1*(U>8):V=-V*(V>0 AND V<9)-8*(V<1)-1*(V>8)
17 IF T>T0+T9 THEN 38 ELSE IF 8*U+V=8*T3+T2 THEN 19 ELSE T=T+1:GOSUB 20:M=0:B3=0:S3=0:T1=0.5*RND:Z(U,V)=G(U,V):PRINT"ENTERING "+G$(U-8*(V>4))+" "+MID$("I II IIIIV ",(V+4*(V>4))*3-2,3)+" QUADRANT":GOTO 6
18 IFMID$(Q$,INT(O)*24+INT(P)*3-26,2)<>" "THENO=INT(O-X1):P=INT(P-X2):PRINT"ENGINES SHUT DOWN AT SECTOR"O","P ELSENEXT:O=INT(O):P=INT(P)
20 E=E-N-10:IFE>=0THENRETURN ELSEPRINT"SHIELD ENERGY DIVERTED TO ENGINES":S=S+E:E=0:S=-S*(S>0):RETURN
21 IF D(3)<0 THEN PRINT"LONG RANGE SENSORS OUT":GOTO 8 ELSE PRINT"LONG RANGE SCAN":FOR I=U-1 TO U+1:FOR J=V-1 TO V+1:Z(I,J)=G(I,J):PRINT MID$("***"+RIGHT$(STR$(G(I,J)+1000),3),(2+(I<1 OR I>8 OR J<1 OR J>8))*3-2,3)":";:NEXT:PRINT:PRINT E$:NEXT:GOTO 8
23 F=INT(X/M):FORI=1TO3:IFK(I,3)<=0THEN25 ELSEH=INT((F/FND)*(RND+2)):IFH<0.16*K(I,3)THENPRINT"NO DAMAGE TO ENEMY AT"K(I,1)","K(I,2) ELSEK(I,3)=K(I,3)-H:PRINTH"UNITS HIT ON KLINGON AT"K(I,1)","K(I,2)
31 IFD(7)<0THENPRINT"SHIELDS INOPERABLE":GOTO8 ELSEPRINTE+S"UNITS AVAILABLE":INPUT"NO. OF UNITS TO SHIELDS",X:IFX<0ORX=STHEN8 ELSEIFX>E+STHENPRINT"NOT ENOUGH ENERGY":GOTO8 ELSEE=E+S-X:S=X:PRINT"SHIELDS AT"S:GOTO8
32 PRINT"STATUS REPORT":PRINT"KLINGON(S) LEFT:"K9:PRINT"MISSION MUST BE FINISHED IN"0.1*INT((T0+T9-T)*10)"STARDATES":PRINT"THERE ARE"B9"STARBASE(S) IN THE GALAXY":IFD(6)<0THENPRINT"REPORT UNAVAILABLE":IFD0=0THEN8
33 PRINT"DEVICE"SPC(13)"STATE OF REPAIR":FORG=1TO8:PRINTH$(G)SPC(25-LEN(H$(G)))INT(D(G)*100)*0.01:NEXT:IFD0=0THEN8 ELSEL=0:FORI=1TO8:L=L-0.1*(D(I)<0):NEXT:IFL=0THEN8 ELSEL=L+T1:IFL>=1THENL=0.9
34 PRINT"STANDBY TO EFFECT REPAIRS ON YOUR SHIP":PRINT"ESTIMATED TIME TO REPAIR:"0.01*INT(100*L)"STARDATES":INPUT"WILL YOU AUTHORIZE THE REPAIR (Y/N)";A$:IFA$="Y"THENFORI=1TO8:D(I)=-D(I)*(D(I)>=0):NEXT:T=T+L+0.1:GOTO8 ELSE8
35 IFM<1THENRETURN ELSEIFD0=1THENPRINT"STARBASE SHIELDS PROTECT THE ENTERPRISE":RETURN ELSEFORI=1TO3:IFK(I,3)<=0THEN37 ELSEH=INT((K(I,3)/FND)*(2+RND)):S=S-H:K(I,3)=K(I,3)/(3+RND(0)):PRINTH"UNITS HIT ON SHIP ";
36 PRINT"FROM SECTOR"K(I,1)","K(I,2):IF S<1 THEN LQ=1:GOTO 38 ELSE PRINT"SHIELDS DOWN TO"S"UNITS":IF H>21 AND(RND<0.6 AND H/S>0.02)THEN G=FNR:D(G)=D(G)-H/S-0.5*RND:PRINT"DAMAGE CONTROL REPORTS "H$(G)" DAMAGED BY THE HIT
37 NEXT:RETURN
38 IF LQ THEN PRINT"THE ENTERPRISE HAS BEEN DESTROYED. THE FEDERATION WILL BE CONQUERED":END ELSE PRINT"IT IS STARDATE"T"THERE WERE"K9"KLINGON BATTLE CRUISERS":PRINT"LEFT AT THE END OF YOUR MISSION":END
39 PRINT"CONGRATULATIONS. THE LAST KLINGON BATTLE CRIUSER HAS BEEN DESTROYED":PRINT"YOUR EFFICIENCY RATING IS"1000*(K7/(T-T0))^2:END
40 FORI=O-1TOO+1:FORJ=P-1TOP+1:IFINT(I+0.5)>=1ANDINT(I+0.5)<=8ANDINT(J+0.5)>=1ANDINT(J+0.5)<=8THENA$=L$:K=I:Z=J:GOSUB47:IFBTHEND0=1:C$="DOCKED":E=3000:T4=10:PRINT"SHIELDS DROPPED FOR DOCKING":S=0:GOTO42
41 NEXTJ,I:D0=0:C$=MID$("GREEN RED",(1-(M<>0))*5-4,5):C$=MID$(C$+" YELLOW",(1-(E<3000*0.1))*6-5,6):IFD(2)<0THENPRINT"SHORT RANGE SENSORS ARE OUT":RETURN